#include "stm32f10x.h"                  // Device header
#include "PWM.h"


#define MOTOR_AIN1_PIN   GPIO_Pin_5   // PA2
#define MOTOR_AIN2_PIN   GPIO_Pin_6   // PA1

void Motor_Init(void) {
	//开启时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	
	// 配置控制引脚(AIN1, AIN2)
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Pin = MOTOR_AIN1_PIN | MOTOR_AIN2_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	PWM_Init();
}


// 设置电机速度和方向
void Motor_Control(int16_t Speed) {
	if(Speed > 100) Speed = 0;
    if(Speed < -100) Speed = 0;
	if (Speed >= 0) {
		GPIO_SetBits(GPIOA, MOTOR_AIN1_PIN);
		GPIO_ResetBits(GPIOA, MOTOR_AIN2_PIN);
		PWM_SetCompare1(Speed);
	}else if (Speed <0){
		GPIO_ResetBits(GPIOA, MOTOR_AIN1_PIN);
		GPIO_SetBits(GPIOA, MOTOR_AIN2_PIN);
		PWM_SetCompare1(-Speed);
	}
//	}else {
//		GPIO_ResetBits(GPIOA, MOTOR_AIN1_PIN);
//		GPIO_ResetBits(GPIOA, MOTOR_AIN2_PIN);
//		PWM_SetCompare1(Speed);
//	}
}



